跳到主要内容

Zookeeper 监控命令

监控命令一览

zooKeeper 支持某些特定的四字命令与其的交互。它们大多是查询命令,用来获取 zooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 zooKeeper 提交相应的命令。 zooKeeper 常用四字命令见下表所示:

命令描述
conf输出相关服务配置的详细信息。比如端口号、zk数据以及日志配置路径、最大连接数,session超时、serverId等
cons列出所有连接到这台服务器的客户端连接/会话的详细信息。包括"接收/发送"的包数量、sessionId、操作延迟、最后的操作执行等信息
crst重置当前这台服务器所有连接/会话的统计信息
dump列出未经处理的会话和临时节点,这仅适用于领导者
envi处理关于服务器的环境详细信息
ruok测试服务是否处于正确运行状态。如果正常返回"imok",否则返回空
stat输出服务器的详细信息:接收/发送包数量、连接数、模式(leader/follower)、节点总数、延迟。所有客户端的列表
srst重置server状态
wchs列出服务器watchers的简洁信息:连接总数、watching节点总数和watches总数
wchc通过session分组,列出watch的所有节点,它的输出是一个与watch相关的会话的节点信息,根据watch数量的不同,此操作可能会很昂贵(即影响服务器性能),请小心使用
mntr列出集群的健康状态。包括"接收/发送"的包数量、操作延迟、当前服务模式(leader/follower)、节点总数、watch总数、临时节点总数

注意:telnet 或 nc 这两个是 Linux 上的网络端口检查工具

命令格式:

echo 四字命令 | nc localhost 2181

conf 查看配置

echo conf | nc localhost 2181

输出的内容为:

[root@DESKTOP-84QLCBR]# echo conf | nc localhost 2182  
clientPort=2182 # 客户端口号
dataDir=/data/version-2 # 数据快照文件目录
dataDirSize=536871040
dataLogDir=/datalog/version-2 # 事务日志文件目录
tickTime=2000 # 服务器与客户端之间维持心跳的间隔(单位:毫秒)
maxClientCnxns=60 # 最大连接数
minSessionTimeout=4000 # 最小session超时时间
maxSessionTimeout=40000 # 最大session超时时间
serverId=1 # 服务器编号
initLimit=5 # 最大初始化时间
syncLimit=2 # 服务器之间应答的最大超时时间
electionAlg=3 # 选举时使用的算法
electionPort=3388 # 选举端口
quorumPort=2288 # 数据通信端口
peerType=0 # 是否为观察者 1为观察者
membership:
server.1=zoo1:2888:3888:participant;0.0.0.0:2181
server.2=zoo2:2888:3888:participant;0.0.0.0:2181
server.3=zoo3:2888:3888:participant;0.0.0.0:2181

cons 查看会话的详细信息

列出所有连接到这台服务器的客户端连接/会话的详细信息

echo cons | nc localhost 2181

属性含义
ipip地址
port端口号
queued等待被处理的请求数,请求缓存在队列中
received收到的包数
sent发送的包数
sid会话id
lop最后的操作 GETD-读取数据 DELE-删除数据 CREA-创建数据
est连接时间戳
to超时时间
lcxid当前会话的操作id
lzxid最大事务id
lresp最后响应时间戳
llat最后/最新 延时
minlat最小延时
maxlat最大延时
avglat平均延时

crst 重置统计信息

重置当前这台服务器所有连接/会话的统计信息

echo crst | nc localhost 2181

dump 列出临时会话

列出未经处理的会话和临时节点

echo dump | nc localhost 2181

随便创建几个临时节点

打印结果

envi 输出服务器环境

输出关于服务器的环境配置信息

echo envi | nc localhost 2181

详细说明:

属性含义
zookeeper.version版本
host .namehost信息
java.versionjava版本
java.vendor供应商
java.home运行环境所在目录
java.class.pathclasspath
java.library.path第三方库指定非java类包的位置(如:dll,so)
java.io.tmpdir默认的临时文件路径
java.compilerJIT 编译器的名称
os .nameLinux
os.archamd64
os.version4.19.104-microsoft-standard
user .name当前用户名
user.home当前用户的家目录
user.dir/apache-zookeeper-3.6.2-bin

ruok 检查状态

测试服务是否处于正确运行状态

echo ruok | nc localhost 2181

输出为 imok 表示正常

stat / srvr 检查服务信息

stat 输出服务器的详细信息与 srvr 相似,但是多了每个连接的会话信息

echo stat | nc localhost 2181
echo srvr | nc localhost 2181

属性含义
Zookeeper version版本
Latency min/avg/max延时
Received收包
Sent发包
Connections连接数
Outstanding堆积数
Zxid最大事物id
Mode服务器角色
Node count节点数

srst 重置服务状态

重置 server 状态

echo srst | nc localhost 2181

wchs 列出 watches

列出服务器 watches 的简洁信息

echo wchs | nc localhost 2181

TODO: 注:这个命令好像需要配置,用到再补充